Methods and apparatus to trigger calibration of a sensor node using machine learning

ABSTRACT

Methods, apparatus, systems and articles of manufacture to trigger calibration of a sensor node using machine learning are disclosed. An example apparatus includes a machine learning model trainer to train a machine learning model using first sensor data collected from a sensor node. A disturbance forecaster is to, using the machine learning model and second sensor data, forecast a temporal disturbance to a communication of the sensor node. A communications processor is to transmit a first calibration trigger in response to a determination that a start of the temporal disturbance is forecasted and a determination that a first calibration trigger has not been sent.

FIELD OF THE DISCLOSURE

This disclosure relates generally to collection of sensor data, and,more particularly, to methods and apparatus to trigger calibration of asensor node using machine learning.

BACKGROUND

In recent years, wireless sensor networks have been deployed inindustrial settings to collect operational statistics of manufacturingfacilities. Such wireless sensor networks are preferred over wiredsensor networks, as the cost of installing such wired sensors is high,due to conduits, power cabling, data cabling, etc. that are to beinstalled.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an example computing system constructed inaccordance with teachings of this disclosure and including a sensor nodegateway, sensor nodes, and interference generating equipment.

FIG. 2 is a diagram illustrating temporal periods of disturbance causedby the interference-generating equipment.

FIG. 3 is a block diagram of an example implementation of the examplesensor node gateway of FIG. 1.

FIG. 4 is a block diagram of an example implementation of the examplesensor node of FIG. 1.

FIG. 5 is a flowchart representative of machine readable instructionswhich may be executed to implement the example sensor node of FIGS. 1and/or 4 to collect and report sensor data.

FIG. 6 is a flowchart representative of machine readable instructionswhich may be executed to implement the example sensor node gateway ofFIGS. 1 and/or 3 to determine when to trigger sensor node calibration.

FIG. 7 is a flowchart representative of machine readable instructionswhich may be executed to implement the example sensor node of FIGS. 1and/or 4 to perform calibration.

FIG. 8 is a diagram illustrating example total power consumption of asensor node based on a number of frames sent and a transmit power forthose frames.

FIG. 9 is a flowchart representative of machine readable instructionswhich may be executed to implement the example sensor node gateway ofFIGS. 1 and/or 3 to determine when process incoming data from the sensornode(s).

FIG. 10 is a block diagram of an example processing platform structuredto execute the instructions of FIGS. 6 and/or 9 to implement the examplesensor node gateway of FIGS. 1 and/or 3.

FIG. 11 is a block diagram of an example processing platform structuredto execute the instructions of FIGS. 5 and/or 7 to implement the examplesensor node of FIGS. 1 and/or 4.

The figures are not to scale. In general, the same reference numberswill be used throughout the drawing(s) and accompanying writtendescription to refer to the same or like parts.

DETAILED DESCRIPTION

There is an increasing demand for wireless sensor networks (WSN) inindustrial deployments. Such demand is, for example, due to rising costsof running power cabling, data cabling, and associated conduits inmanufacturing facilities to enable the use of traditional wired sensors.To implement the WSN, sensor nodes are placed throughout a facility, andreport data to one or more sensor node gateways. However, the sensornodes are typically battery operated devices and, as a result, present achallenge with respect to power consumption and/or battery life. Suchsensor nodes are expected to sustain multi-year operational runtime.

In manufacturing facilities, different operations/processes are startedat different times (e.g., based on a layout of the production site, aschedule at which manufacturing operations are conducted, etc.)Manufacturing equipment commonly emits radiant noise (e.g.,electromagnetic interference (EMI)) in the operational spectrum of theWSN and, as a result, can cause interference when the sensor node(s)attempt to communicate data. This EMI can manifest itself asinterference to the different nodes of the WSN in both spatial andtemporal terms. For example, when interference generating equipment(e.g., a machine) is operated, EMI at a first sensor node (at a firstlocation) may manifest itself differently from the EMI at a secondsensor node (at a second location different from the first location).Moreover, the interference may vary in intensity over time depending onwhich equipment of the manufacturing floor is active. Such variationsare known to cause high fluctuations in interference betweencommunicating nodes.

Existing WSN systems utilize a fixed configuration after deploymentwhere parameters such as a data reporting interval (e.g., how frequentlya sensor node is to attempt to transmit data), communications settings(e.g., transmit strengths, number of frames to send, where to transmitthe frames, etc.) are statically configured at the sensor node. Thestatic nature of such systems makes improvement of battery life whilemaintaining a required level of quality of service (QoS) difficult. Tomaintain a required QoS, sensor nodes are commonly configured to accountfor data transmissions that occur during periods of communicationsdisturbances (e.g., the sensor nodes must be able to communicate in theworst expected operational conditions). To overcome those disturbances,sensor nodes are configured to use large amounts of transmit power andmany re-transmitted frames. As a result, in periods where there are nocommunications disturbances, sensor nodes consume more power thannecessary to maintain the QoS. Manual re-calibration of the deploymentis difficult as the variations are not only spatial due to the physicallocation of the nodes, but also temporal in that interference sourcesmay vary over time. As a result, typical fixed/default configurationsresult in high-power repeated transmissions on the part of the sensornode(s), resulting in higher power consumption and shorter battery lifethan utilizing the example approaches disclosed herein.

Example approaches disclosed herein utilize machine learning to increasethe reliability of communications of a WSN, as well as improve batterylife of sensor nodes within the WSN. To accomplish such increases and/orimprovements, example approaches disclosed herein utilize machinelearning to determine when to trigger calibration of sensor nodes withinthe WSN.

FIG. 1 is a block diagram of an example computing system 100 constructedin accordance with teachings of this disclosure and including a wirelesssensor network 101 and interference-generating equipment 102. Theexample wireless sensor network 101 includes a sensor node gateway 110and sensor nodes 120, 122, 124, 126. In the illustrated example of FIG.1, the example sensor node gateway 110 communicates sensor data to anenterprise system 150.

The interference generating equipment 102 in the illustrated example ofFIG. 1 is any sort of machine, equipment, device, etc. that generatesinterference. In the illustrated example of FIG. 1, the interferencegenerated by the interference generating equipment 102 affects thecommunications within the wireless sensor network 101. Such effects maybe temporal and/or spatial. For example, the effects may be temporal inthat the interference is primarily generated while the interferencegenerating equipment 102 is being operated. The effects may be spatialin that the interference is stronger when in close proximity to theinterference generating equipment 102. Thus, a first sensor nodeoperated in close proximity to the interference generating equipment 102may experience more interference while the interference generatingequipment 102 is in operation than a second sensor node that is furtheraway from the interference generating equipment 102.

The sensor node gateway 110 of the illustrated example of FIG. 1 enablesdata collected by the sensor nodes 120, 122, 124, 126 to be transmittedand/or otherwise relayed to the enterprise system 150. In some examples,multiple sensor node gateways may be used to, for example, enable sensornodes to be spaced relatively far apart from each other. For example,multiple sensor node gateways may be installed in a large manufacturingfacility to facilitate receipt of data from sensor nodes also installedthroughout the facility. However, the sensor node gateway 110 may beimplemented in any other location such as, for example, in a building,at a roadside, in a commercial space, etc. An example implementation ofthe sensor node gateway 110 is described below in connection with FIG.3.

The sensor nodes 120, 122, 124, 126 of the illustrated example of FIG. 1collect sensor data and report the sensor data to the sensor nodegateway 110. In examples disclosed herein, the sensor data representstemperature data. However, any other type of sensor data mayadditionally or alternatively be used such as, for example, image data,audio data, pressure sensor readings, etc. In the illustrated example ofFIG. 1, the sensor node(s) are statically placed such that they providesensor data corresponding to various locations in, for example, amanufacturing environment. In some examples, the sensor nodes are infixed locations and are not hard-wired. As a result, the sensor nodesoperate on battery power. Moreover, such fixed locations may not be easyto access for battery replacement purposes. Thus, ensuring that thesensor nodes operate in as power-efficiently a manner as possible isimportant for reducing the number of times that the sensor node is tohave its battery changed. In some examples, the sensor node may bemobile (e.g., attached to a robot that moves about the manufacturingenvironment). An example implementation of the example sensor node 120is described below in connection with FIG. 4.

The example enterprise system 150 is a system that enables the sensordata collected by the sensor node(s) 120, 122, 124, 126 to be reviewedby an enterprise administrator. In examples disclosed herein, theexample enterprise system 150 is implemented by one or more computersystems (e.g., servers). Such computer systems may be local to thesensor node gateway(s) and/or may be implemented remotely from thesensor node gateway(s) (e.g., in a cloud computing environment). In someexamples, the enterprise system 150 coordinates the operation of theinterference generating equipment 102 through an enterprise schedulingsystem. In some examples, planning information from the schedulingsystem is provided to the sensor node gateway 110 to facilitateprediction of temporal disturbances.

FIG. 2 is a diagram 200 illustrating temporal periods of disturbancecaused by the interference-generating equipment. The diagram 200 of FIG.2 includes a horizontal axis 210 representing time, and a vertical axis220 representing an amount of sensor data received at the sensor nodegateway 110. In the illustrated example of FIG. 2, the horizontal axis210 represents three days. However, any other time-frame mayadditionally or alternatively be represented. While, in the illustratedexample of FIG. 2, the vertical axis 220 represents an amount of datareceived, any other measure of the quality of data transmissions betweenthe sensor node(s) 120, 122, 124, 126 and the sensor node gateway 110may additionally or alternatively be used. For example, the verticalaxis 220 may represent a Received Signal Strength Indication (RSSI).Data points 230 represent the amount of sensor data received at thesensor node gateway 110 over time.

The example diagram 200 of FIG. 2 includes a first period of temporaldisturbance 240 and a second period of temporal disturbance 245. Outsideof the first and second periods of temporal disturbance 240, 245, theamount of sensor data 230 indicates a normal amount of received data.Within the first and second periods of temporal disturbance 240, 245,the sensor data 230 indicates that interference during those timeperiods has caused reduced amounts of data to be received.

In examples disclosed herein, each sensor node in the WSN 101 will havenormal fluctuations of RSSI due to diffractions (e.g., slow fading) andreflections/multi-path (e.g., fast fading). The statistical distributionof those diffractions and reflections are generally Gaussian andRayleigh respectively. For slow fading, the standard deviation is basedon the physical placement of nodes and can vary, but normally falls inthe range of 1.5 dBm to 12 dBm (e.g., depending on level(s) ofdiffractions between the nodes). The temporal fluctuations can be on theorder of 20 dBm due to the emitted interference from the interferencegenerating equipment 102 and can last for hours before returning to thenormal range.

FIG. 3 is a block diagram of an example implementation of the examplesensor node gateway 110 of FIG. 1. The example sensor node gateway 110of the illustrated example of FIG. 3 includes a transceiver 310, acommunications processor 320, a disturbance forecaster 330, a machinelearning model trainer 337, a machine learning model memory 338, abeacon counter 340, a disturbance flag 345, an aggregated sensor datastore 350, and a data reporter 355.

The example transceiver 310 of the illustrated example of FIG. 3 isimplemented by a wireless transceiver capable of wirelesslycommunicating data to and/or from the sensor node(s). In examplesdisclosed herein, the transceiver 310 communicates using a Bluetooth LowEnergy (BLE) communications protocol. In examples disclosed herein, thetransceiver 310 communicates using a connectionless protocol. However,any other past, present, and/or future communicationsprotocols/technologies may additionally or alternatively be used suchas, for, an International Society of Automation (ISA) 100.11a standard,a Highway Addressable Remote Transducer Protocol (HART) protocol, aWirelessHART protocol, an Institute of Electrical and ElectronicsEngineers (IEEE) 802.15.4 standard, etc.

The example communications processor 320 of the illustrated example ofFIG. 3 is implemented by a logic circuit such as, for example, ahardware processor. However, any other type of circuitry mayadditionally or alternatively be used such as, for example, one or moreanalog or digital circuit(s), logic circuits, programmable processor(s),Application Specific Integrated Circuit(s) (ASIC(s)), programmable logicdevice(s) (PLD(s)) and/or field programmable logic device(s) (FPLD(s)),programmable controller(s), graphics processing unit(s) (GPU(s)),digital signal processor(s) (DSP(s)), etc.

The example communications processor 320 enables the sensor node gateway110 to process received communications from the sensor node(s). Whenreceiving communications from the sensor node(s), the examplecommunications processor 320 may determine whether, for example, thecommunications is a reset frame count instruction, a beacon frame, aframe count request, and/or includes sensor data. In response to thedetermination, the example communications processor 320 may recordinformation at the sensor node gateway (e.g., reset a counter, incrementa counter, store sensor data) and/or may reply to the sensor node withinformation (e.g., a value of the counter).

The example disturbance forecaster 330 of the illustrated example ofFIG. 3 is implemented by a logic circuit such as, for example, ahardware processor. However, any other type of circuitry mayadditionally or alternatively be used such as, for example, one or moreanalog or digital circuit(s), logic circuits, programmable processor(s),ASIC(s), PLD(s), FPLD(s), programmable controller(s), GPU(s), DSP(s),etc. The example disturbance forecaster 330 implements a machinelearning model (e.g., a neural network) according to the modelinformation stored in the machine learning model memory 338. The examplemachine learning model of the illustrated example of FIG. 3 is a deepneural network (DNN). However, any other past, present, and/or futuremachine learning topology(ies) and/or architecture(s) may additionallyor alternatively be used such as, for example, a convolutional neuralnetwork (CNN), a feed-forward neural network. Using the model stored inthe machine learning model memory 338, the example disturbanceforecaster 330 determines whether a temporal disturbance (e.g.,communications interference) is forecasted.

If the example disturbance forecaster 330 determines that the temporaldisturbance is forecasted, the example disturbance forecaster 330determines whether the example disturbance flag 345 is set to zero. Ifthe temporal disturbance flag is set to zero, this indicates that thewireless sensor network has just entered the temporal disturbanceperiod, and that calibration of the sensor nodes should be triggered.That is, if the example disturbance forecaster 330 determines that thedisturbance flag 345 is set to zero, the example disturbance forecaster330 sets the temporal disturbance flag to one and transmits, via thetransceiver 310, a calibration trigger. If the example disturbanceforecaster 330 determines that the disturbance flag 345 is set to one,no calibration trigger is sent.

If the example disturbance forecaster 330 determines that the temporaldisturbance is not forecasted (indicating that the wireless sensornetwork is not operating in a period of temporal disturbance), theexample disturbance forecaster 330 determines whether the exampledisturbance flag 345 is set to one. If the temporal disturbance flag isset to one, this indicates that the wireless sensor network has justleft the temporal disturbance period, and that calibration of the sensornodes should be triggered. That is, if the example disturbanceforecaster 330 determines that the disturbance flag 345 is set to one,the example disturbance forecaster 330 sets the temporal disturbanceflag to zero and transmits, via the transceiver 310, the calibrationtrigger. If the example disturbance forecaster 330 determines that thedisturbance flag 345 is set to zero (indicating that the calibrationtrigger for the period of non-disturbance has already been transmitted),no calibration trigger is transmitted.

The machine learning model trainer 337 of the illustrated example ofFIG. 3 is implemented by a logic circuit such as, for example, ahardware processor. However, any other type of circuitry mayadditionally or alternatively be used such as, for example, one or moreanalog or digital circuit(s), logic circuits, programmable processor(s),ASIC(s), PLD(s), FPLD(s), programmable controller(s), GPU(s), DSP(s),etc. The example machine learning model trainer 337 performs training ofthe model stored in the machine learning model memory 338. In examplesdisclosed herein, training is performed using Stochastic GradientDescent. However, any other approach to training a machine learningmodel may additionally or alternatively be used.

The example machine learning model memory 338 of the illustrated exampleof FIG. 3 is implemented by any memory, storage device and/or storagedisc for storing data such as, for example, flash memory, magneticmedia, optical media, etc. Furthermore, the data stored in the examplemachine learning model memory 338 may be in any data format such as, forexample, binary data, comma delimited data, tab delimited data,structured query language (SQL) structures, etc. While in theillustrated example the example machine learning model memory 338 isillustrated as a single device, the example machine learning modelmemory 338 and/or any other data storage devices described herein may beimplemented by any number and/or type(s) of memories. In the illustratedexample of FIG. 3, the example machine learning model memory 338 storesa machine learning model that, based on input sensor data, enablesprediction of a period of temporal disturbance.

The example beacon counter 340 of the illustrated example of FIG. 3 isimplemented by any memory, storage device and/or storage disc forstoring data such as, for example, flash memory, magnetic media, opticalmedia, etc. The data stored in the example beacon counter 340 representsa number of beacon frames received from a given sensor node. In someexamples, multiple different beacon counters 340 may exist to enablehandling of multiple different sensor nodes. However, in some examples,a single beacon counter 340 (e.g., a single memory) may be used tohandle multiple different sensor nodes. Furthermore, the data stored inthe example beacon counter 340 may be in any data format such as, forexample, binary data, comma delimited data, tab delimited data,structured query language (SQL) structures, etc. While in theillustrated example the example beacon counter 340 is illustrated as asingle device, the example beacon counter 340 and/or any other datastorage devices described herein may be implemented by any number and/ortype(s) of memories.

The example disturbance flag 345 of the illustrated example of FIG. 3 isimplemented by any memory, storage device and/or storage disc forstoring data such as, for example, flash memory, magnetic media, opticalmedia, etc. The data stored in the example disturbance flag 345 is abinary value indicating whether a calibration trigger has been sent whenentering and/or exiting a period of temporal disturbance. However, thedata stored in the example disturbance flag 345 may be in any dataformat such as, for example, binary data, comma delimited data, tabdelimited data, structured query language (SQL) structures, etc. Whilein the illustrated example the example disturbance flag 345 isillustrated as a single device, the example disturbance flag 345 and/orany other data storage devices described herein may be implemented byany number and/or type(s) of memories.

The example aggregated sensor data store 350 of the illustrated exampleof FIG. 3 is implemented by any memory, storage device and/or storagedisc for storing data such as, for example, flash memory, magneticmedia, optical media, etc. Furthermore, the data stored in the exampleaggregated sensor data store 350 may be in any data format such as, forexample, binary data, comma delimited data, tab delimited data,structured query language (SQL) structures, etc. While in theillustrated example the example aggregated sensor data store 350 isillustrated as a single device, the example aggregated sensor data store350 and/or any other data storage devices described herein may beimplemented by any number and/or type(s) of memories. In the illustratedexample of FIG. 3, the example aggregated sensor data store 350 stores asensor data received from the one or more sensors that report data tothe example sensor node gateway.

The example data reporter 355 of the illustrated example of FIG. 3 isimplemented by a logic circuit such as, for example, a hardwareprocessor. However, any other type of circuitry may additionally oralternatively be used such as, for example, one or more analog ordigital circuit(s), logic circuits, programmable processor(s), ASIC(s),PLD(s), FPLD(s), programmable controller(s), GPU(s), DSP(s), etc. Theexample data reporter 355 reports sensor data stored in the exampleaggregated sensor data store 350 to the example enterprise system 150.

FIG. 4 is a block diagram of an example implementation of the examplesensor node 120 of FIG. 1. The example sensor node 120 of theillustrated example of FIG. 4 includes a data controller 410, atransceiver 420, a sensor interface 425, a battery 450, a configurationmemory 460, and a calibrator 470. The example sensor node 120 of theillustrated example of FIG. 4 accesses data from one or more sensors490. In some examples, the sensors 490 are implemented as a component ofthe sensor node 120. However, in some other examples, these one or moresensors 490 are implemented separately from the example sensor node 120,and the sensor node 120 interfaces with those sensor(s) to retrievesensor data.

The example data controller 410 of the illustrated example of FIG. 4 isimplemented by a logic circuit such as, for example, a hardwareprocessor. However, any other type of circuitry may additionally oralternatively be used such as, for example, one or more analog ordigital circuit(s), logic circuits, programmable processor(s), ASIC(s),PLD(s), FPLD(s), programmable controller(s), GPU(s), DSP(s), etc. Theexample data controller 410 determines whether the sensor node 120should wake from a low power mode. In examples disclosed herein, thedata controller 410 determines that the device should be woken from thelow power mode periodically (e.g., every ten minutes, every hour, etc.)However, the example data controller 410 may determine that the sensornode should be woken from the low power mode in any other fashion. Forexample, the data controller 410 may determine that the device should bewoken from the low power mode a-periodically (e.g., in response to anexternal stimulus such as an instruction to wake from the low powermode, a sensor value, etc.).

Upon waking from the low power mode and/or upon performing furthercommunications monitoring, the example data controller 410 determineswhether a calibration instruction has been received and, if so, causesthe example calibrator 470 to perform calibration. The example datacontroller 410 causes the sensor interface 425 to retrieve sensor datafrom the one or more sensors 490. The example data controller 410 causesthe sensor data to be relayed to the example sensor data gateway 110 viathe transceiver 420.

The example transceiver 420 of the illustrated example of FIG. 4 enablesthe sensor node 120 to communicate sensor data to the sensor nodegateway 110. In examples disclosed herein, the transceiver 420communicates using a Bluetooth Low Energy (BLE) communications protocol.In examples disclosed herein, the transceiver 420 communicates using aconnectionless protocol. However, any other past, present, and/or futurecommunications protocols/technologies may additionally or alternativelybe used such as, for, an International Society of Automation (ISA)100.11a standard, a Highway Addressable Remote Transducer Protocol(HART) protocol, a WirelessHART protocol, an Institute of Electrical andElectronics Engineers (IEEE) 802.15.4 standard, etc.

The example sensor interface 425 of the illustrated example of FIG. 4 isimplemented by an analog to digital converter. As a result, the examplesensor interface 425 receives an analog sensor value from the one ormore sensors 490 and converts the analog sensor value into a digitalvalue for reporting to the sensor node gateway 110. However, the examplesensor interface 425 may be implemented using any other circuitry suchas, for example, one or more analog or digital circuit(s), logiccircuits, programmable processor(s), ASIC(s), PLD(s), FPLD(s),programmable controller(s), GPU(s), DSP(s), etc.

The example battery 450 of the illustrated example of FIG. 4 isimplemented using a rechargeable lithium-ion battery. However, any othertype of battery and/or, more generally, any power source mayadditionally or alternatively be used. For example, the battery 450 maybe implemented using a non-rechargeable battery. In some examples, thebattery 450 is implemented using a separate power source such as, forexample, a solar cell.

The example configuration memory 460 of the illustrated example of FIG.4 is implemented by any memory, storage device and/or storage disc forstoring data such as, for example, flash memory, magnetic media, opticalmedia, etc. Furthermore, the data stored in the example configurationmemory 460 may be in any data format such as, for example, binary data,comma delimited data, tab delimited data, structured query language(SQL) structures, etc. While in the illustrated example the exampleconfiguration memory 460 is illustrated as a single device, the exampleconfiguration memory 460 and/or any other data storage devices describedherein may be implemented by any number and/or type(s) of memories. Inthe illustrated example of FIG. 4, the example configuration memory 460stores configuration information specific to the sensor node including,for example, a transmission power to be used by the sensor node, anumber of re-transmissions to be made, a gateway identifier, etc.

The example calibrator 470 the illustrated example of FIG. 4 isimplemented by a logic circuit such as, for example, a hardwareprocessor. However, any other type of circuitry may additionally oralternatively be used such as, for example, one or more analog ordigital circuit(s), logic circuits, programmable processor(s), ASIC(s),PLD(s), FPLD(s), programmable controller(s), GPU(s), DSP(s), etc. Theexample calibrator 470, at the direction of the sensor node gateway 110,calibrates transmission settings of the sensor node 120.

To perform the calibration process, the example calibrator 470identifies combinations of transmit power and numbers of frames to send.The example calibrator 470 configures the example transceiver 420 totransmit using the transmit power of the identified combination oftransmit power and number of frames to send, and initializes the exampletransmit counter 412. The example calibrator 470 causes the exampletransceiver 420 to transmit a reset frame count signal to all nearbysensor node gateways 110. The example calibrator 470 then causes thetransceiver 420 to send a number of beacon frames to all nearby sensornode gateways 110 using the configured transmit power. Upon completionof the transmission of the beacon frames, the example calibrator 470accesses the number of beacon frames received at each of the nearbysensor node gateways. The process is repeated for a number ofcombinations of transmit powers and number of frames to send, and theresulting number of frames for each combination is stored at the sensornode.

The example calibrator 470 then calculates a reliability of transmittingto each responsive sensor node gateway using each of the combinations aswell as the resulting number of frames received. The example calibrator470 then selects a combination and sensor node gateway, and stores theselected combination and sensor node gateway in the configuration memory460. As a result, the data controller 410, subsequently causes thesensor node to operate using the transmit power, number of frames tosend, and the selected sensor node gateway based on the informationstored by the calibrator 470 in the configuration memory 460.

The example sensors 490 of the illustrated example of FIG. 4 aredevice(s), module(s), or subsystem(s) that detect events and/or changesin their environment. In the illustrated example of FIG. 4, a singlesensor is shown. However, any number of sensors may be used. Moreover,sensors may be of a same type and/or of different types. In examplesdisclosed herein, the sensors 490 are temperature sensors. However, anyother type of sensors may additionally or alternatively be used such as,for example, image sensor(s), audio sensor(s), pressure sensor(s), etc.In the illustrated example of FIG. 4, the sensor(s) are shown separatelyfrom the sensor node 120. However, in some examples, the sensor(s) maybe an internal component of the sensor node 120.

While an example manner of implementing the sensor node gateway 110 ofFIG. 1 is illustrated in FIG. 3 and an example manner of implementingthe sensor node 120 of FIG. 1 is illustrated in FIG. 4, one or more ofthe elements, processes and/or devices illustrated in FIGS. 1, 3, and/or4 may be combined, divided, re-arranged, omitted, eliminated and/orimplemented in any other way. Further, the example transceiver 310, theexample communications processor 320, the example disturbance forecaster330, the example machine learning model trainer 337, the example datareporter 355, and/or, more generally, the example sensor node gateway110; and/or the example data controller 410, the example transceiver420, the example sensor interface 425, the example calibrator 470and/or, more generally, the example sensor node 120 of FIG. 4 may beimplemented by hardware, software, firmware and/or any combination ofhardware, software and/or firmware. Thus, for example, any of theexample transceiver 310, the example communications processor 320, theexample disturbance forecaster 330, the example machine learning modeltrainer 337, the example data reporter 355, and/or, more generally, theexample sensor node gateway 110; and/or the example data controller 410,the example transceiver 420, the example sensor interface 425, theexample calibrator 470 and/or, more generally, the example sensor node120 of FIG. 4 could be implemented by one or more analog or digitalcircuit(s), logic circuits, programmable processor(s), programmablecontroller(s), graphics processing unit(s) (GPU(s)), digital signalprocessor(s) (DSP(s)), application specific integrated circuit(s)(ASIC(s)), programmable logic device(s) (PLD(s)) and/or fieldprogrammable logic device(s) (FPLD(s)). When reading any of theapparatus or system claims of this patent to cover a purely softwareand/or firmware implementation, at least one of the example transceiver310, the example communications processor 320, the example disturbanceforecaster 330, the example machine learning model trainer 337, theexample data reporter 355, and/or, more generally, the example sensornode gateway 110; and/or the example data controller 410, the exampletransceiver 420, the example sensor interface 425, the examplecalibrator 470 and/or, more generally, the example sensor node 120 ofFIG. 4 is/are hereby expressly defined to include a non-transitorycomputer readable storage device or storage disk such as a memory, adigital versatile disk (DVD), a compact disk (CD), a Blu-ray disk, etc.including the software and/or firmware. Further still, the examplesensor node gateway 110 of FIGS. 1 and/or 3 and the example sensor node120 of FIGS. 1 and/or 4 may include one or more elements, processesand/or devices in addition to, or instead of, those illustrated in FIGS.1, 3, and/or 4, and/or may include more than one of any or all of theillustrated elements, processes and devices. As used herein, the phrase“in communication,” including variations thereof, encompasses directcommunication and/or indirect communication through one or moreintermediary components, and does not require direct physical (e.g.,wired) communication and/or constant communication, but ratheradditionally includes selective communication at periodic intervals,scheduled intervals, aperiodic intervals, and/or one-time events.

Flowcharts representative of example hardware logic, machine readableinstructions, hardware implemented state machines, and/or anycombination thereof for implementing the sensor node 120 of FIGS. 1and/or 4 are shown in FIGS. 5 and/or 7. Flowcharts representative ofexample hardware logic, machine readable instructions, hardwareimplemented state machines, and/or any combination thereof forimplementing the sensor node gateway 110 of FIGS. 1 and/or 3 are shownin FIGS. 6 and/or 9. The machine readable instructions may be anexecutable program or portion of an executable program for execution bya computer processor such as the processor 1012 shown in the exampleprocessor platform 1000 discussed below in connection with FIG. 10 orthe processor 1112 shown in the example processor platform 1100discussed below in connection with FIG. 11. The program may be embodiedin software stored on a non-transitory computer readable storage mediumsuch as a CD-ROM, a floppy disk, a hard drive, a DVD, a Blu-ray disk, ora memory associated with the processor 1012, 1112, but the entireprogram and/or parts thereof could alternatively be executed by a deviceother than the processor 1012, 1112 and/or embodied in firmware ordedicated hardware. Further, although the example program is describedwith reference to the flowchart illustrated in FIGS. 5, 6, 7, and/or 9,many other methods of implementing the example sensor node gateway 110and/or the example sensor node 120 may alternatively be used. Forexample, the order of execution of the blocks may be changed, and/orsome of the blocks described may be changed, eliminated, or combined.Additionally or alternatively, any or all of the blocks may beimplemented by one or more hardware circuits (e.g., discrete and/orintegrated analog and/or digital circuitry, an FPGA, an ASIC, acomparator, an operational-amplifier (op-amp), a logic circuit, etc.)structured to perform the corresponding operation without executingsoftware or firmware.

As mentioned above, the example processes of FIGS. 5, 6, 7, and/or 9 maybe implemented using executable instructions (e.g., computer and/ormachine readable instructions) stored on a non-transitory computerand/or machine readable medium such as a hard disk drive, a flashmemory, a read-only memory, a compact disk, a digital versatile disk, acache, a random-access memory and/or any other storage device or storagedisk in which information is stored for any duration (e.g., for extendedtime periods, permanently, for brief instances, for temporarilybuffering, and/or for caching of the information). As used herein, theterm non-transitory computer readable medium is expressly defined toinclude any type of computer readable storage device and/or storage diskand to exclude propagating signals and to exclude transmission media.

“Including” and “comprising” (and all forms and tenses thereof) are usedherein to be open ended terms. Thus, whenever a claim employs any formof “include” or “comprise” (e.g., comprises, includes, comprising,including, having, etc.) as a preamble or within a claim recitation ofany kind, it is to be understood that additional elements, terms, etc.may be present without falling outside the scope of the correspondingclaim or recitation. As used herein, when the phrase “at least” is usedas the transition term in, for example, a preamble of a claim, it isopen-ended in the same manner as the term “comprising” and “including”are open ended. The term “and/or” when used, for example, in a form suchas A, B, and/or C refers to any combination or subset of A, B, C such as(1) A alone, (2) B alone, (3) C alone, (4) A with B, (5) A with C, (6) Bwith C, and (7) A with B and with C.

As used herein in the context of describing structures, components,items, objects and/or things, the phrase “at least one of A and B” isintended to refer to implementations including any of (1) at least oneA, (2) at least one B, and (3) at least one A and at least one B.Similarly, as used herein in the context of describing structures,components, items, objects and/or things, the phrase “at least one of Aor B” is intended to refer to implementations including any of (1) atleast one A, (2) at least one B, and (3) at least one A and at least oneB. As used herein in the context of describing the performance orexecution of processes, instructions, actions, activities and/or steps,the phrase “at least one of A and B” is intended to refer toimplementations including any of (1) at least one A, (2) at least one B,and (3) at least one A and at least one B. Similarly, as used herein inthe context of describing the performance or execution of processes,instructions, actions, activities and/or steps, the phrase “at least oneof A or B” is intended to refer to implementations including any of (1)at least one A, (2) at least one B, and (3) at least one A and at leastone B.

FIG. 5 is a flowchart representative of machine readable instructionswhich may be executed to implement the example sensor node 120 of FIGS.1 and/or 4 to collect and report sensor data. The example process 500 ofFIG. 5 begins when the example data controller 410 determines that thesensor node 120 should wake from a low power mode. (Block 510). Inexamples disclosed herein, the data controller 410 determines that thedevice should be woken from the low power mode periodically (e.g., everyten minutes, every hour, etc.) However, the example data controller 410may determine that the sensor node 120 should be woken from the lowpower mode in any other fashion. For example, the data controller 410may determine that the device should be woken from the low power modea-periodically (e.g., in response to an external stimulus such as aninstruction to wake from the low power mode, a sensor value, etc.). Theexample data controller 410 determines whether a calibration instructionhas been received. (Block 515). In some examples, the calibrationinstruction may cause the device to wake from the low power mode and/ormay be received while in the low power mode. If the calibrationinstruction has been received (e.g., block 515 returns a result of YES),the example calibrator 470 performs a calibration routine. (Block 520).An example calibration routine is disclosed in further detail inconnection with FIG. 7, below.

Upon determination that no calibration instruction has been received(e.g., block 515 returning result of NO), or upon performance of thecalibration routine (e.g., block 520), the example data controller 410consults the example configuration memory 460 to determine a number oftimes to send data. (Block 525). The example data controller 410consults the configuration memory 460 to determine a transmit power thatis to be used. (Block 530). The example data controller 410 consults theconfiguration memory 460 to determine an identity of a sensor nodegateway 110 to which the data is to be sent. (Block 535). The exampledata controller 410 initializes the transmit counter 412. (Block 540).In examples disclosed herein, the transmit counter 412 is initialized tozero. However, any other initialization value may additionally oralternatively be used.

The example sensor interface 410 interfaces with the one or more sensors490 to collect sensor data. (Block 545). The example sensor data ispassed to the data controller 410, where the example data controller 410causes the transceiver 420 to transmit the sensor data to the selectedgateway using the identified transmit power. (Block 550). In someexamples, instead of immediately transmitting the accessed sensor data,the sensor data may be cached in a memory of the sensor node 120. Theexample data controller 410 increments the transmit counter 412. (Block555). The example data controller then determines whether the transmitcounter 412 meets or exceeds the number of times to send data. (Block560).

If the transmit counter 412 does not meet or exceed the number of timesto send data (e.g., block 560 returns result of NO), the exampleprocesses of blocks 550, 555, and 560 are repeated until the countermeets or exceeds the number of times to send data. In this manner, theexample sensor node 120 transmits the sensor data multiple times to thesensor node gateway 110. Transmitting multiple times increases thelikelihood that at least one of the multiple transmissions will beproperly received at the sensor node gateway 110. In examples disclosedherein, the transmission of the sensor data to the selected sensor nodegateway 110 includes a sensor node identifier that identifies the sensornode 120 that is transmitting the sensor data.

If the transmit counter 412 meets or exceeds the number of times to senddata (e.g., block 560 returns a result of YES), the example datacontroller 410 causes the sensor node 120 to enter the low power mode.(Block 565). The example process 500 of the illustrated example of FIG.5 then terminates. The example process 500 of the illustrated example ofFIG. 5 may then be repeated (e.g., periodically and/or a periodically)to cause the sensor node 120 to collect and transmit subsequent sensordata.

FIG. 6 is a flowchart representative of machine readable instructionswhich may be executed to implement the example sensor node gateway 110of FIGS. 1 and/or 3 to determine when to trigger sensor nodecalibration. The example process 600 of FIG. 6 involves two phases: aninitialization phase 605 and an operational phase 655. In theinitialization phase 605, the sensor node gateway 110 collects data fromthe sensor nodes, and creates a machine learning model to identifyanticipated periods of temporal disturbance. In the operational phase655, the example sensor node gateway 110 collects data from the sensornodes and uses the machine learning model to predict a next temporaldisturbance. Upon entry to and/or exit from a predicted period oftemporal disturbance, the example sensor node gateway 110 sends acalibration trigger to cause the sensor node(s) to re-calibrate theirtransmission power and number of frames to be transmitted.

The example process 600 of FIG. 6 begins when the example communicationsprocessor 320, via the transceiver 310, instructs the sensor nodes tooperate with default settings. (Block 610). In some examples, block 610is omitted, and the sensor nodes operate with the settings stored intheir corresponding configuration memories. The example communicationsprocessor 320 then receives data and/or other communications from thesensor nodes, and processes the received data and/or communicationsappropriately. (Block 620 a). An example approach for processingreceived data and/or communications is described below in connectionwith FIG. 9.

The example machine learning model trainer 337 then determines whetherthe sensor data collected by the communications processor 320 inconnection with block 620 a is sufficient for training of a machinelearning model. If the example machine learning model trainer 337determines that the sensor data collected in connection with block 620 ais not sufficient for training of the machine learning model (e.g.,block 630 returns a result of NO) the example process of blocks 620 aand 630 is repeated until the example machine learning model trainer 337determines that the sensor data collected in connection with block 620 ais sufficient for training of the machine learning model. In examplesdisclosed herein, the collected data is considered sufficient fortraining when, for example, at least two weeks of data has beencollected. However, any other approach for determining whether thecollected data is sufficient for training of a machine learning modelmay additionally or alternatively be used. For example, the examplemachine learning model trainer 337 may attempt to train the machinelearning model and determine a confidence score of the trained model.The collected data may be deemed insufficient for training when, forexample the confidence score does not meet a confidence score threshold.

If the example machine learning model trainer 337 determines that thecollected data is sufficient for training the machine learning model(e.g., block 630 returns a result of YES), the example machine learningmodel trainer 337 trains the machine learning model to identify periodsof temporal disturbance in the received sensor data. (Block 640). Inexamples disclosed herein, training is performed using a stochasticgradient descent process. However, any other approach to training aneural network may additionally or alternatively be used. The examplemachine learning model trained by the machine learning model trainer 337is stored in the example machine learning model memory 338.

Upon completion of training of the machine learning model, the examplesensor node gateway enters the operational phase 655. In the operationalphase 655 the example communications processor 320 receives data and/orother communications from the sensor nodes, and processes the receiveddata and/or communications appropriately. (Block 620 b). As noted above,an example approach for processing received data and/or communicationsis described below in connection with FIG. 9.

The example disturbance forecaster 330 utilizes the machine learningmodel stored in the example machine learning model memory 338 by theexample machine learning model trainer 337 to predict whether thewireless sensor network is operating within and/or is about to enter atemporal disturbance period. (Block 665). Predicting whether thewireless sensor network is operating within and/or is about to enterinto a temporal disturbance period enables timely calibration triggersto be transmitted to the sensor nodes 120, 122, 124, 126. The exampledisturbance forecaster 330 determines whether such a disturbance isforecasted. (Block 670).

If the example disturbance forecaster 330 determines that the temporaldisturbance is forecasted (e.g., block 670 returns a result of YES), theexample disturbance forecaster 330 determines whether the exampledisturbance flag 345 is set to zero. (Block 672). If the temporaldisturbance flag is set to zero, this indicates that the wireless sensornetwork has just entered the temporal disturbance period, and thatcalibration of the sensor nodes should be triggered. That is, if theexample disturbance forecaster 330 determines that the disturbance flag345 is set to zero (e.g., block 672 returns a result of YES), theexample disturbance forecaster 330 sets the temporal disturbance flag toone (block 674) and transmits, via the transceiver 310, a calibrationtrigger. (Block 680). If the example disturbance forecaster 330determines that the disturbance flag 345 is set to one (e.g., block 672returns a result of NO) (indicating that the calibration trigger for thetemporal disturbance period has already been transmitted), controlproceeds to block 695.

If the example disturbance forecaster 330 determines that the temporaldisturbance is not forecasted (e.g., block 670 returns a result of NO)(indicating that the wireless sensor network is not operating in aperiod of temporal disturbance), the example disturbance forecaster 330determines whether the example disturbance flag 345 is set to one.(Block 676). If the temporal disturbance flag is set to one, thisindicates that the wireless sensor network has just left the temporaldisturbance period, and that calibration of the sensor nodes should betriggered. That is, if the example disturbance forecaster 330 determinesthat the disturbance flag 345 is set to one (e.g., block 676 returns aresult of YES), the example disturbance forecaster 330 sets the temporaldisturbance flag to zero (block 678) and transmits, via the transceiver310, the calibration trigger. (Block 680). If the example disturbanceforecaster 330 determines that the disturbance flag 345 is set to zero(e.g., block 672 returns a result of NO) (indicating that thecalibration trigger for the period of non-disturbance has already beentransmitted), control proceeds to block 695.

At block 695, the example disturbance forecaster 330 determines whetherthe machine learning model trainer 337 should retrain the machinelearning model stored in the example machine learning model memory 338.The determination of whether to retrain may be based on, for example,receiving an unanticipated amount of data from the sensor node(s) 120,122, 124, 126 (e.g., too much data, too little data, etc.). If theexample disturbance forecaster 330 determines that the machine learningmodel trainer 337 should retrain the machine learning model (e.g., block695 returns a result of YES) control proceeds to block 640. If theexample disturbance forecaster 330 determines that the machine learningmodel trainer 337 should not retrain the machine learning model (e.g.,block 695 returns a result of NO), control proceeds to block 620. Theexample process 600 of FIG. 6 then continues until, for example, thesensor node gateway 110 is powered off.

FIG. 7 is a flowchart representative of machine readable instructionswhich may be executed to implement the example sensor node 120 of FIGS.1 and/or 4 to perform calibration. The process 520 of the illustratedexample of FIG. 7 begins in response to the example data controller 410determining that a calibration instruction has been received (e.g.,block 515 of FIG. 5 returning a result of YES). The example process 520of FIG. 7 enables the sensor node 120 to select a transmit power, numberof redundant frames, and sensor node gateway to be used to transmitsensor data. The trigger for this process is initiated by sensor nodegateway 110 when the disturbance forecaster 330 forecasts a start and/orend of a temporal disturbance.

To begin the example process 520, the example calibrator 470 identifiescombinations of transmit power and numbers of frames to send. (Block710). The example calibrator 470 configures the example transceiver 420to transmit using the transmit power of the identified combination oftransmit power and number of frames to send. (Block 720). The examplecalibrator 470 initializes the example transmit counter 412. (Block730). The example calibrator 470 causes the example transceiver 420 totransmit a reset frame count signal to all nearby sensor node gateways110. (Block 732). The example calibrator 470 then causes the transceiver420 to send a beacon frame to all nearby sensor node gateways 110 usingthe configured transmit power. (Block 734). In examples disclosedherein, the transmission of the reset frame and subsequent beacon frameis accomplished using a broadcast mechanism. However, in some examples,unicast and/or multicast communications may be used to transmit thereset frame and/or beacon frame to the nearby sensor node gateways. Theexample calibrator 470 increments the transmit counter 412. (Block 738).The example calibrator 470 then determines whether the value stored inthe transmit counter 412 meets or exceeds the number of times to sendbeacon frames. (Block 740). If the value in the transmit counter 412does not meet or exceed the number of times to send beacon frames (e.g.,block 740 returns a result of NO), the example process of blocks 734,738, and 740 are repeated until the value in the transmit counter 412meets or exceeds the number of times to send beacon frames (e.g., untilblock 740 returns a result of YES).

Upon completion of the transmission of the beacon frames, the examplecalibrator 470 accesses the number of beacon frames received at each ofthe nearby sensor node gateways. (Block 745). In examples disclosedherein, the number of beacon frames received at each of the sensor nodegateways is retrieved by causing the transceiver 420 to transmit a countrequest to each of the sensor node gateways, and receiving a response tothe count request.

The example calibrator 470 then calculates a reliability of transmittingto each responsive sensor node gateway using the combination of transmitpower and number of beacon frames. (Block 750). In examples disclosedherein, the reliability of each combination of sensor node, transmitpower, and number of frames is calculated using Equation 1, below.

$\begin{matrix}{R_{received} = \frac{N_{received}}{N_{x}}} & {{Equation}\mspace{14mu} 1}\end{matrix}$In the example Equation 1, above, N_(received) represents the number ofbeacon frames received at the sensor node gateway, and N_(x) representsthe total number of beacon frames transmitted to the sensor nodegateway. The example calibrator then uses the reliability of receipt(R_(received)) to determine a cost function, shown below in connectionwith Equation 2.C _(x)=√{square root over (α*(R _(target) −R _(received))²+β*(P _(x) *N_(x))²)}   Equation 2In Equation 2, R_(target) represents a reliability target (e.g., anexpected percentage of beacon frames that should have been received). Inexamples disclosed herein, the reliability target is ninety percent.However, any other reliability target may additionally or alternativelybe used. P_(x) represents the transmit power used to transmit the beaconframes. α and β represent weighting factors.

The example calibrator 470 stores the result of the reliability and costfunction(s) in connection with the combination of transmit power, numberof frames, and sensor node gateway. (Block 760). In examples disclosedherein, the result(s) are stored in the configuration memory. Theexample calibrator determines whether there are any additionalcombinations of transmit power and number of frames to attempt. (Block770). If additional combinations exist (e.g., block 770 returns a resultof YES), the example process of block 710 through 770 are repeated untilno additional combinations exist for testing. In some examples, toenable faster calibration, the combination set identified by the examplecalibrator 470 may be limited to fewer combinations of transmit powerand number of frames to send.

Upon determining that no additional combinations exist to attempt (e.g.,block 770 returns a result of NO), the example calibrator 470 selects acombination of transmit power, number of frames to send, and sensor nodegateway identity based on the stored result(s) of the cost function.(Block 780). In examples disclosed herein, the calibrator selects acombination that meets or exceeds the target reliability, and has alowest cost. However, any other approach to selecting a combination mayadditionally or alternatively be used.

The example calibrator 470 then stores the selected transmit power,number of frames to send, and sensor node gateway identity in theconfiguration memory 460. (Block 790). As a result, the data controller410, subsequently causes the sensor node to operate using the transmitpower, number of frames to send, and sensor node gateway to transmit tobased on the information stored by the calibrator 470 in theconfiguration memory 460. The example process 520 of FIG. 7 thenterminates, but may be repeated upon the example data controller 410determining that a calibration instruction has been received.

FIG. 8 is a diagram 800 illustrating example total power consumption ofa sensor node based on a number of frames sent and a transmit power forthose frames. A first axis 810 represents the transmit power used totransmit a frame (in dBm). A second axis 815 represents a number offrames sent by the sensor node. A third axis 820 represents a totalpower consumption (in milliwatts) of the sensor node when transmittingthe corresponding number of frames and at the corresponding transmitpower. If, for example, the battery 450 were implemented using a CR2032battery, the sensor node would only be able to transmit at a four dBmtransmit power transmitting fifteen frames for approximately one hundredand thirty six hours (if transmitting non-stop). As shown in the examplediagram 800 of FIG. 8, transmitting additional frames, using highertransmit power, and/or combinations thereof, results in higher overallpower consumption.

FIG. 9 is a flowchart representative of machine readable instructionswhich may be executed to implement the example sensor node gateway 110of FIGS. 1 and/or 3 to process incoming data from the sensor node(s)120, 122, 124, 126. The example process 620 of the illustrated exampleof FIG. 9 begins when the example communication processor receives acommunication via the transceiver 310. (Block 910).

In response to receipt of the communication (e.g., block 910 returning aresult of yes, the example communications processor 320 determineswhether the received communication is a reset frame count instruction.(Block 920). If the received communication is a reset frame countinstruction, the example communications processor 320 sets a value ofthe beacon counter 340 to zero. (Block 925). In some examples, thebeacon counter 340 is associated with a particular sensor nodeidentifier. Associating the beacon counter 340 with a particular sensornode identifier enables the example sensor node gateway 110 to maintainbeacon counts in connection with each of the sensor nodes 120, 122, 124,126 that communicate with the sensor node gateway 110. Control thenreturns to block 910 where the example communications processor 320awaits a subsequent communication.

If the example communications processor 320 determines that the receivedcommunication is not a reset frame count instruction (e.g., block 920returns a result of NO), the example communications processor 320determines whether the received communications is a beacon frame. (Block930). If the example communications processor 320 determines that thereceived communication is a beacon frame (e.g., block 930 returns aresult of YES), the example communications processor 320 increments thebeacon counter 340. (Block 935). Control then returns to block 910 wherethe example communications processor 320 awaits a subsequentcommunication.

If the example communications processor 320 determines that the receivedcommunication is not a beacon frame (e.g., block 930 returns a result ofNO), the example communications processor 320 determines whether thereceived communication is a frame count request. (Block 940). If theexample communications processor 320 determines that the receivedcommunication is the frame count request (e.g., block 940 returns aresult of YES), the example communications processor 320 causes theexample transceiver 310 to reply to the sensor node the transmittedframe count request with the current value of the beacon counter 340.(Block 945). Control then returns to block 910 where the examplecommunications processor 320 awaits a subsequent communication.

If the example communications processor 320 determines that the receivedcommunication is not a frame count request (e.g., block 940 returns aresult of NO), the example communications processor determines whetherthe received communication includes sensor data (e.g., sensor valuesreported by a sensor node). (Block 950). If the example communicationsprocessor 320 determines that the received communication does notinclude sensor data (e.g., block 950 returns a result of NO), controlreturns to block 910 where the example communications processor 320awaits a subsequent communication.

If the example communications processor determines that the receivedcommunication includes sensor data (e.g., block 950 returns a result ofYES), the example communications processor 320 extracts the sensor datafrom the received communications. (Block 955). The examplecommunications processor 320 consults the aggregated data store 350 todetermine if the extracted sensor data is already stored in the exampleaggregated sensor data store 350. (Block 960). The examplecommunications processor 320 determines whether the extracted sensordata is already stored in the example aggregated sensor data store 350by querying the aggregated sensor data store 350 to determine whetherany data is stored in the aggregated sensor data store 350 in connectionwith the sensor node that transmitted the communication within athreshold period of time (e.g., the past minute the past 10 seconds,etc.) The example threshold period of time may correspond to thefrequency at which the sensor node is expected to wake from the lowpower mode to transmit sensor data.

If the example communications processor determines that the sensor datadoes not already exist in the aggregated sensor data store (e.g., block960 returns a result of NO), the example communications processorrecords the extracted sensor data in the aggregated sensor data storewith a timestamp and an identifier of the sensor node that transmittedthe sensor data. (Block 970). Control then returns to block 910 wherethe example communications processor 320 awaits a subsequentcommunication.

Returning to block 960, if the example communications processor 320determines that the sensor data already exists in the aggregated sensordata store (e.g., block 960 returns a result of YES), the examplecommunications processor ignores the data. (Block 980). Ignoring thereceived data (e.g., not recording the received data in the aggregatedsensor data store 350) enables the communications processor 320 toreduce the amount of data stored in the aggregated sensor data store350, thereby reducing computing resource requirements associated withstoring received data. Moreover, because the example sensor node 120,when transmitting data to the sensor node gateway 110, transmits thesame data multiple times (e.g., to ensure that at least one of thetransmissions is successful), ignoring the received data that hasalready been recorded ensures that duplicate data is not stored in theexample aggregated sensor data store. Control then returns to block 910where the example communications processor 320 awaits a subsequentcommunication.

FIG. 10 is a block diagram of an example processor platform 1000structured to execute the instructions of FIGS. 6 and/or 9 to implementthe example sensor node gateway 110 of FIGS. 1 and/or 3. The processorplatform 1000 can be, for example, a server, a personal computer, aworkstation, a self-learning machine (e.g., a neural network), a mobiledevice (e.g., a cell phone, a smart phone, a tablet such as an iPad™), apersonal digital assistant (PDA), an Internet appliance, a DVD player, aCD player, a digital video recorder, a Blu-ray player, a gaming console,a personal video recorder, a set top box, a headset or other wearabledevice, or any other type of computing device.

The processor platform 1000 of the illustrated example includes aprocessor 1012. The processor 1012 of the illustrated example ishardware. For example, the processor 1012 can be implemented by one ormore integrated circuits, logic circuits, microprocessors, GPUs, DSPs,or controllers from any desired family or manufacturer. The hardwareprocessor may be a semiconductor based (e.g., silicon based) device. Inthis example, the processor implements the example communicationsprocessor 320, the example disturbance forecaster, and the examplemachine learning model trainer 337.

The processor 1012 of the illustrated example includes a local memory1013 (e.g., a cache). The processor 1012 of the illustrated example isin communication with a main memory including a volatile memory 1014 anda non-volatile memory 1016 via a bus 1018. The volatile memory 1014 maybe implemented by Synchronous Dynamic Random Access Memory (SDRAM),Dynamic Random Access Memory (DRAM), RAMBUS® Dynamic Random AccessMemory (RDRAM®) and/or any other type of random access memory device.The non-volatile memory 1016 may be implemented by flash memory and/orany other desired type of memory device. Access to the main memory 1014,1016 is controlled by a memory controller. In the illustrated example ofFIG. 10, the example non-volatile memory 1016 implements the examplebeacon counter 340 and the example disturbance flag 345.

The processor platform 1000 of the illustrated example also includes aninterface circuit 1020. The interface circuit 1020 may be implemented byany type of interface standard, such as an Ethernet interface, auniversal serial bus (USB), a Bluetooth® interface, a near fieldcommunication (NFC) interface, and/or a PCI express interface. In theillustrated example of FIG. 10, the interface circuit 1020 implementsthe example transceiver 310 and the example data reporter 355.

In the illustrated example, one or more input devices 1022 are connectedto the interface circuit 1020. The input device(s) 1022 permit(s) a userto enter data and/or commands into the processor 1012. The inputdevice(s) can be implemented by, for example, an audio sensor, amicrophone, a camera (still or video), a keyboard, a button, a mouse, atouchscreen, a track-pad, a trackball, isopoint and/or a voicerecognition system.

One or more output devices 1024 are also connected to the interfacecircuit 1020 of the illustrated example. The output devices 1024 can beimplemented, for example, by display devices (e.g., a light emittingdiode (LED), an organic light emitting diode (OLED), a liquid crystaldisplay (LCD), a cathode ray tube display (CRT), an in-place switching(IPS) display, a touchscreen, etc.), a tactile output device, a printerand/or speaker. The interface circuit 1020 of the illustrated example,thus, typically includes a graphics driver card, a graphics driver chipand/or a graphics driver processor.

The interface circuit 1020 of the illustrated example also includes acommunication device such as a transmitter, a receiver, a transceiver, amodem, a residential gateway, a wireless access point, and/or a networkinterface to facilitate exchange of data with external machines (e.g.,computing devices of any kind) via a network 1026. The communication canbe via, for example, an Ethernet connection, a digital subscriber line(DSL) connection, a telephone line connection, a coaxial cable system, asatellite system, a line-of-site wireless system, a cellular telephonesystem, etc.

The processor platform 1000 of the illustrated example also includes oneor more mass storage devices 1028 for storing software and/or data.Examples of such mass storage devices 1028 include floppy disk drives,hard drive disks, compact disk drives, Blu-ray disk drives, redundantarray of independent disks (RAID) systems, and digital versatile disk(DVD) drives.

The machine executable instructions 1032 of FIGS. 6 and/or 9 may bestored in the mass storage device 1028, in the volatile memory 1014, inthe non-volatile memory 1016, and/or on a removable non-transitorycomputer readable storage medium such as a CD or DVD. The example massstorage device 1028 of the illustrated example of FIG. 10 implements theexample aggregated sensor data store 350 and the example machinelearning model memory 338.

FIG. 11 is a block diagram of an example processor platform 1100structured to execute the instructions of FIGS. 5 and/or 7 to implementthe example sensor node 120 of FIGS. 1 and/or 4. The processor platform1100 can be, for example, a server, a personal computer, a workstation,a self-learning machine (e.g., a neural network), a mobile device (e.g.,a cell phone, a smart phone, a tablet such as an iPad™), a personaldigital assistant (PDA), an Internet appliance, a DVD player, a CDplayer, a digital video recorder, a Blu-ray player, a gaming console, apersonal video recorder, a set top box, a headset or other wearabledevice, or any other type of computing device.

The processor platform 1100 of the illustrated example includes aprocessor 1112. The processor 1112 of the illustrated example ishardware. For example, the processor 1112 can be implemented by one ormore integrated circuits, logic circuits, microprocessors, GPUs, DSPs,or controllers from any desired family or manufacturer. The hardwareprocessor may be a semiconductor based (e.g., silicon based) device. Inthis example, the processor implements the example data controller 410and the example calibrator 470.

The processor 1112 of the illustrated example includes a local memory1113 (e.g., a cache). The processor 1112 of the illustrated example isin communication with a main memory including a volatile memory 1114 anda non-volatile memory 1116 via a bus 1118. The volatile memory 1114 maybe implemented by Synchronous Dynamic Random Access Memory (SDRAM),Dynamic Random Access Memory (DRAM), RAMBUS® Dynamic Random AccessMemory (RDRAM®) and/or any other type of random access memory device.The non-volatile memory 1116 may be implemented by flash memory and/orany other desired type of memory device. Access to the main memory 1114,1116 is controlled by a memory controller.

The processor platform 1100 of the illustrated example also includes aninterface circuit 1120. The interface circuit 1120 may be implemented byany type of interface standard, such as an Ethernet interface, auniversal serial bus (USB), a Bluetooth® interface, a near fieldcommunication (NFC) interface, and/or a PCI express interface.

In the illustrated example, one or more input devices 1122 are connectedto the interface circuit 1120. The input device(s) 1122 permit(s) a userto enter data and/or commands into the processor 1112. The inputdevice(s) can be implemented by, for example, an audio sensor, amicrophone, a camera (still or video), a keyboard, a button, a mouse, atouchscreen, a track-pad, a trackball, isopoint and/or a voicerecognition system. In the illustrated example of FIG. 11, the exampleinterface 1120 implements the example transceiver 420 and the examplesensor interface 425.

One or more output devices 1124 are also connected to the interfacecircuit 1120 of the illustrated example. The output devices 1124 can beimplemented, for example, by display devices (e.g., a light emittingdiode (LED), an organic light emitting diode (OLED), a liquid crystaldisplay (LCD), a cathode ray tube display (CRT), an in-place switching(IPS) display, a touchscreen, etc.), a tactile output device, a printerand/or speaker. The interface circuit 1120 of the illustrated example,thus, typically includes a graphics driver card, a graphics driver chipand/or a graphics driver processor.

The interface circuit 1120 of the illustrated example also includes acommunication device such as a transmitter, a receiver, a transceiver, amodem, a residential gateway, a wireless access point, and/or a networkinterface to facilitate exchange of data with external machines (e.g.,computing devices of any kind) via a network 1126. The communication canbe via, for example, an Ethernet connection, a digital subscriber line(DSL) connection, a telephone line connection, a coaxial cable system, asatellite system, a line-of-site wireless system, a cellular telephonesystem, etc.

The processor platform 1100 of the illustrated example also includes oneor more mass storage devices 1128 for storing software and/or data.Examples of such mass storage devices 1128 include floppy disk drives,hard drive disks, compact disk drives, Blu-ray disk drives, redundantarray of independent disks (RAID) systems, and digital versatile disk(DVD) drives.

The machine executable instructions 1132 of FIGS. 5 and/or 7 may bestored in the mass storage device 1128, in the volatile memory 1114, inthe non-volatile memory 1116, and/or on a removable non-transitorycomputer readable storage medium such as a CD or DVD. The example massstorage device 1128 of the illustrated example of FIG. 11 implements theexample configuration memory 460.

From the foregoing, it will be appreciated that example methods,apparatus and articles of manufacture have been disclosed that enabletriggering of sensor node calibration based on a machine learning model.Using a machine learning model enables prediction of whether a period oftemporal disturbance is about to be entered or exited, thereby enablingtriggering of the calibration of sensor nodes in a wireless sensornetwork. The disclosed methods, apparatus and articles of manufactureimprove the efficiency of using a computing device by dynamicallysetting transmission configuration(s) of sensor nodes to reduce powerrequirements. The disclosed methods, apparatus and articles ofmanufacture are accordingly directed to one or more improvement(s) inthe functioning of a computer.

Example 1 includes an apparatus to trigger calibration of sensor nodes,the apparatus comprising a machine learning model trainer to train amachine learning model using first sensor data collected from a sensornode, a disturbance forecaster to, using the machine learning model andsecond sensor data, forecast a next temporal disturbance to acommunication ability of the sensor node, and a communications processorto transmit a first calibration trigger in response to a determinationthat a start of the temporal disturbance is forecasted and adetermination that a first calibration trigger has not been sent, thecommunications processor to transmit a second calibration trigger inresponse to determining that an end of the temporal disturbance isforecasted and a determination that a second calibration trigger has notbeen sent.

Example 2 includes the apparatus of example 1, wherein the machinelearning model trainer is further to determine that the first sensordata is sufficient for training the machine learning model, and performthe training of the machine learning model in response to determiningthat the first sensor data is sufficient.

Example 3 includes the apparatus of example 1, wherein the machinelearning model trainer is further to re-train the machine learning modelusing the second sensor data.

Example 4 includes the apparatus of example 1, wherein thecommunications processor is further to, in response to receipt of acommunication from the sensor node, extract the second sensor data fromthe communication, determine whether the second sensor data is alreadystored in a data store, and in response to determining that the secondsensor data is already stored in the data stored, not store the secondsensor data in the data store.

Example 5 includes the apparatus of example 1, further including abeacon counter, and the communications processor is further to, inresponse to receipt of a first communication indicating that the sensornode is to begin a calibration sequence, initialize a value of a beaconcounter.

Example 6 includes the apparatus of example 5, wherein thecommunications processor is to, in response to receipt of a secondcommunication, increment the value of the beacon counter.

Example 7 includes the apparatus of example 6, wherein thecommunications processor is to, in response to receipt of a thirdcommunication, transmit the value of the beacon counter to the sensornode.

Example 8 includes at least one non-transitory machine-readable storagemedium comprising instructions that, when executed, cause at least oneprocessor to at least train a machine learning model in response todetermining that first sensor data collected from a sensor node issufficient for training the machine learning model, access second sensordata collected from the sensor node, using the machine learning modeland the second sensor data to forecast a next temporal disturbance to acommunication ability of the sensor node, in response to determiningthat a start of the temporal disturbance is forecasted and adetermination that a first calibration trigger has not been sent,transmit the first calibration trigger, and in response to determiningthat an end of the temporal disturbance is forecasted and adetermination that a second calibration trigger has not been sent,transmit the second calibration trigger.

Example 9 includes the at least one non-transitory machine-readablestorage medium of example 8, wherein the instructions, when executed,further cause the at least one processor to determine that the firstsensor data is sufficient for training the machine learning model whenthe first sensor data represents data collected over a threshold amountof time.

Example 10 includes the at least one non-transitory machine-readablestorage medium of example 8, wherein the instructions, when executed,further cause the at least one processor to re-train the machinelearning model using the second sensor data.

Example 11 includes the at least one non-transitory machine-readablestorage medium of example 8, wherein the instructions, when executed,further cause the at least one processor to, in response to receipt of acommunication from the sensor node extract the second sensor data fromthe communication, determine whether the second sensor data is alreadystored in a data store, and in response to determining that the secondsensor data is already stored in the data stored, not store the secondsensor data in the data store.

Example 12 includes the at least one non-transitory machine-readablestorage medium of example 8, wherein the instructions, when executed,further cause the at least one processor to, in response to receipt of afirst communication indicating that the sensor node is to begin acalibration sequence, initialize a value of a beacon counter.

Example 13 includes the at least one non-transitory machine-readablestorage medium of example 12, wherein the instructions, when executed,further cause the at least one processor to, in response to receipt of asecond communication, increment the value of the beacon counter.

Example 14 includes the at least one non-transitory machine-readablestorage medium of example 13, wherein the second communication is abeacon frame.

Example 15 includes the at least one non-transitory machine-readablestorage medium of example 13, wherein the instructions, when executed,further cause the at least one processor to, in response to receipt of athird communication, transmit the value of the beacon counter to thesensor node.

Example 16 includes an apparatus to trigger calibration of sensor nodes,the apparatus comprising means for training a machine learning modelusing first sensor data collected from a sensor node, means forforecasting, using the machine learning model and second sensor data, anext temporal disturbance to a communication ability of the sensor node,and means for transmitting a first calibration trigger in response to adetermination that a start of the temporal disturbance is forecasted anda determination that a first calibration trigger has not been sent,transmitting the first calibration trigger, the means for transmittingto transmit a second calibration trigger in response to determining thatan end of the temporal disturbance is forecasted and a determinationthat a second calibration trigger has not been sent, transmitting thesecond calibration trigger.

Example 17 includes the apparatus of example 16, wherein the means fortraining is to determine that the first sensor data is sufficient fortraining the machine learning model, the means for training to performthe training of the machine learning model in response to determiningthat the first sensor data is sufficient.

Example 18 includes the apparatus of example 16, wherein the means fortraining is to re-train the machine learning model using the secondsensor data.

Example 19 includes the apparatus of example 16, wherein the means fortransmitting is further to, in response to receipt of a communicationfrom the sensor node, extract the second sensor data from thecommunication, determine whether the second sensor data is alreadystored in a data store, and in response to determining that the secondsensor data is already stored in the data stored, not store the secondsensor data in the data store.

Example 20 includes a method of triggering calibration of sensor nodes,the method comprising training a machine learning model in response todetermining that first sensor data collected from the sensor node issufficient for training the machine learning model, accessing secondsensor data collected from the sensor node, using the machine learningmodel and the second sensor data to forecast a next temporal disturbanceto a communication ability of the sensor node, in response todetermining that a start of the temporal disturbance is forecasted and adetermination that a first calibration trigger has not been sent,transmitting the first calibration trigger, and in response todetermining that an end of the temporal disturbance is forecasted and adetermination that a second calibration trigger has not been sent,transmitting the second calibration trigger.

Example 21 includes the method of example 20, further includingdetermining that the first sensor data is sufficient for training themachine learning model when the first sensor data represents datacollected over a threshold amount of time.

Example 22 includes the method of example 20, further includingre-training the machine learning model using the second sensor data.

Example 23 includes the method of example 20, further including, inresponse to receipt of a communication from the sensor node extractingthe second sensor data from the communication, determining whether thesecond sensor data is already stored in a data store, and in response todetermining that the second sensor data is already stored in the datastored, not storing the second sensor data in the data store.

Example 24 includes the method of example 20, further including, inresponse to receipt of a first communication indicating that the sensornode is to begin a calibration sequence, initializing a value of abeacon counter.

Example 25 includes the method of example 24, further including, inresponse to receipt of a second communication, incrementing the value ofthe beacon counter.

Example 26 includes the method of example 25, wherein the secondcommunication is a beacon frame.

Example 27 includes the method of example 25, further including, inresponse to receipt of a third communication, transmitting the value ofthe beacon counter to the sensor node.

Although certain example methods, apparatus and articles of manufacturehave been disclosed herein, the scope of coverage of this patent is notlimited thereto. On the contrary, this patent covers all methods,apparatus and articles of manufacture fairly falling within the scope ofthe claims of this patent.

What is claimed is:
 1. An apparatus to trigger calibration of sensornodes, the apparatus comprising: a machine learning model trainer totrain a machine learning model using first sensor data collected from asensor node; a disturbance forecaster to, using the machine learningmodel and second sensor data, forecast a temporal disturbance includingan interference to a communication ability of the sensor node; and acommunications processor to: transmit a first calibration trigger inresponse to a first determination that a start of the temporaldisturbance is forecasted and a second determination that the firstcalibration trigger has not been sent; and transmit a second calibrationtrigger in response to a third determination that an end of the temporaldisturbance is forecasted and a fourth determination that the secondcalibration trigger has not been sent.
 2. The apparatus of claim 1,wherein the machine learning model trainer is further to determine thatthe first sensor data is sufficient for training the machine learningmodel, and perform the training of the machine learning model inresponse to determining that the first sensor data is sufficient.
 3. Theapparatus of claim 1, wherein the machine learning model trainer isfurther to re-train the machine learning model using the second sensordata.
 4. The apparatus of claim 1, wherein the communications processoris further to, in response to receipt of a communication from the sensornode, extract the second sensor data from the communication, determinewhether the second sensor data is already stored in a data store, and inresponse to determining that the second sensor data is already stored inthe data store, not store the second sensor data in the data store. 5.The apparatus of claim 1, further including a beacon counter, and thecommunications processor is further to, in response to receipt of afirst communication indicating that the sensor node is to begin acalibration sequence, initialize a value of the beacon counter.
 6. Theapparatus of claim 5, wherein the communications processor is to, inresponse to receipt of a second communication, increment the value ofthe beacon counter.
 7. The apparatus of claim 6, wherein thecommunications processor is to, in response to receipt of a thirdcommunication, transmit the value of the beacon counter to the sensornode.
 8. At least one non-transitory machine-readable storage mediumcomprising instructions that, when executed, cause at least oneprocessor to at least: train a machine learning model in response todetermining that first sensor data collected from a sensor node issufficient for training the machine learning model; access second sensordata collected from the sensor node; use the machine learning model andthe second sensor data to forecast a temporal disturbance including aninterference to a communication ability of the sensor node; in responseto a first determination that a start of the temporal disturbance isforecasted and a second determination that a first calibration triggerhas not been sent, transmit the first calibration trigger; and inresponse to a third determination that an end of the temporaldisturbance is forecasted and a fourth determination that a secondcalibration trigger has not been sent, transmit the second calibrationtrigger.
 9. The at least one non-transitory machine-readable storagemedium of claim 8, wherein the instructions, when executed, furthercause the at least one processor to determine that the first sensor datais sufficient for the training of the machine learning model when thefirst sensor data represents data collected over a threshold amount oftime.
 10. The at least one non-transitory machine-readable storagemedium of claim 8, wherein the instructions, when executed, furthercause the at least one processor to re-train the machine learning modelusing the second sensor data.
 11. The at least one non-transitorymachine-readable storage medium of claim 8, wherein the instructions,when executed, further cause the at least one processor to, in responseto receipt of a communication from the sensor node: extract the secondsensor data from the communication; determine whether the second sensordata is already stored in a data store; and in response to determiningthat the second sensor data is already stored in the data stored, notstore the second sensor data in the data store.
 12. The at least onenon-transitory machine-readable storage medium of claim 8, wherein theinstructions, when executed, further cause the at least one processorto, in response to receipt of a first communication indicating that thesensor node is to begin a calibration sequence, initialize a value of abeacon counter.
 13. The at least one non-transitory machine-readablestorage medium of claim 12, wherein the instructions, when executed,further cause the at least one processor to, in response to receipt of asecond communication, increment the value of the beacon counter.
 14. Theat least one non-transitory machine-readable storage medium of claim 13,wherein the second communication is a beacon frame.
 15. The at least onenon-transitory machine-readable storage medium of claim 13, wherein theinstructions, when executed, further cause the at least one processorto, in response to receipt of a third communication, transmit the valueof the beacon counter to the sensor node.
 16. An apparatus to triggercalibration of sensor nodes, the apparatus comprising: means fortraining a machine learning model using first sensor data collected froma sensor node; means for forecasting, using the machine learning modeland second sensor data, a temporal disturbance including an interferenceto a communication ability of the sensor node; and means fortransmitting to: transmit a first calibration trigger in response to afirst determination that a start of the temporal disturbance isforecasted and a second determination that the first calibration triggerhas not been sent; and transmit a second calibration trigger in responseto a third determination that an end of the temporal disturbance isforecasted and a fourth determination that the second calibrationtrigger has not been sent.
 17. The apparatus of claim 16, wherein themeans for training is to determine that the first sensor data issufficient for the training of the machine learning model, the means fortraining to perform the training of the machine learning model inresponse to determining that the first sensor data is sufficient. 18.The apparatus of claim 16, wherein the means for training is to re-trainthe machine learning model using the second sensor data.
 19. Theapparatus of claim 16, wherein the means for transmitting is further to,in response to receipt of a communication from the sensor node, extractthe second sensor data from the communication, determine whether thesecond sensor data is already stored in a data store, and in response todetermining that the second sensor data is already stored in the datastored, not store the second sensor data in the data store.